Package GUI

Source Code of GUI.SignInGUI$SignInListener

package GUI;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

import Background.Contestant;
import Background.Judge;
import Background.Lists;

/**
* A class to display the registration window in the gui.  Builds the window and displays it.
*
* @author Chris Petcher
* @version 13 February, 2013
*
*/
@SuppressWarnings("serial")
public class SignInGUI extends JFrame
{
 
  /**
   * A dimension used in setting the size of the frame.
   */
 
  private static final Dimension MY_SIZE = new Dimension(1000, 500);

  /**
    * This field is for the Border Layout that contains all my buttons
    * for the information stage.
    */

  public JPanel MY_INFO_PANEL;
 
  /**
    * This field creates a flow layout which hold the top buttons in the frame.
    */

  public Container MY_GRID;
 
  /**
   * A container to handle the flow layout.
   */
 
  public Container MY_FLOW;
 
  /**
   * A text field for holding the user's username.
   */
 
  public JTextField MY_USER_FIELD;
 
  /**
   * A text field for holding the password.
   */
 
  public JPasswordField MY_PASS_FIELD;
 
  /**
   * A checkbox that the user can select to indicate they are a contestant.
   */
 
  private JCheckBox MY_CONTESTANT;
 
  /**
   * A checkbox that the user can select to indicate they are a judge.
   */
 
  private JCheckBox MY_JUDGE;
 
  /**
   * A checkbox that the user can select to indicate they are the organizer.
   */
 
  private JCheckBox MY_ORGANIZER;

  /**
   * A list to hold the strings of the user's information.
   */
 
  public ArrayList<String> MY_LIST;
 
  /**
   * A boolean to indicate if the user is a contestant.
   */
 
  public static boolean isContestant = false;
 
  /**
   * A boolean to indicate if the user is a judge.
   */
 
  public static boolean isJudge = false;
 
  /**
   * A boolean that is flipped on when a user was found in the userlist.
   */
 
  public static boolean isFound = false;
 
  /**
   * A contestant object.
   */
 
  static Contestant current_contestant;
 
  /**
   *
   */
 
  private Main_GUI gui;
 
  /**
   * Constructor for the RegistrationGUI.  Sets the name of the window.
   */
 
  public SignInGUI(final Main_GUI the_gui) {
    
      super("Sign-in");
      MY_INFO_PANEL = new JPanel(new BorderLayout());
    MY_GRID = new JPanel(new GridLayout(8,1));
    MY_FLOW = new JPanel(new FlowLayout());
    MY_USER_FIELD = new JTextField();
    MY_PASS_FIELD = new JPasswordField();
    MY_CONTESTANT = new JCheckBox("Contestant");
    MY_JUDGE = new JCheckBox("Judge");
    MY_ORGANIZER = new JCheckBox("Organizer");
    MY_LIST = new ArrayList<String>();
    gui = the_gui;
    }

  /**
   *   Method that brings up the sign-in window and sets up the GUI.
   */
    public void start() {
      setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        setVisible(true);
        setPreferredSize(MY_SIZE);
        createInfoGrid();
        add(MY_INFO_PANEL);
        validate();
        pack();
    }

    /**
     * A method to display the registration window after it's been closed.
     */
   
    public void displaySignIn(){
      setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        setPreferredSize(MY_SIZE);
        add(MY_INFO_PANEL);
        setVisible(true);
        pack();
       
    }
   
    /**
     * Creates the window for the information page.  This creates some labels and text
     * fields that will capture the user's entered data.
     */
   
  public void createInfoGrid() {
    final JButton sign_in = new JButton("Sign-in");
    sign_in.addActionListener(new SignInListener());
    MY_GRID.add(new JLabel("Username:"));
    MY_GRID.add(MY_USER_FIELD);
    MY_GRID.add(new JLabel("Password:"));
    MY_GRID.add(MY_PASS_FIELD);
    MY_GRID.add(new JLabel("Type of User"));
    MY_GRID.add(MY_CONTESTANT);
    MY_GRID.add(MY_JUDGE);
    MY_GRID.add(MY_ORGANIZER);
    MY_FLOW.add(MY_GRID, BorderLayout.CENTER);
    MY_INFO_PANEL.add(MY_FLOW);
    MY_INFO_PANEL.add(sign_in, BorderLayout.SOUTH);
   
  }
 
  public void resetSignIn() {
    MY_USER_FIELD.setText("");
    MY_PASS_FIELD.setText("");
    MY_CONTESTANT.setSelected(false);
    MY_JUDGE.setSelected(false);
    MY_ORGANIZER.setSelected(false);
         remove(MY_INFO_PANEL);
         validate();
   
  }
 
  /**
   * Getter for the current contestant.
   */
 
  public static Contestant getCurrentContestant(){
    return current_contestant;
  }

  /**
   * Inner class to go to the next window in the registration process when
   * button is pressed.
   * @author Justin Sorrell
   */
  class SignInListener implements ActionListener {

    /**
     * Action performed method that displays the about message.
     * @param the_event The event, ignored.
     */
    @Override
    public void actionPerformed(final ActionEvent the_event) {
      char[] temp;
      SignInGUI s = Main_GUI.getSignInGUI();
      String username = MY_USER_FIELD.getText();
        temp = MY_PASS_FIELD.getPassword();
        String password = new String(temp);
      String name = null;
      boolean success = false;
      boolean blank = false;
     
      if(username.equals("") || password.equals("")){
        blank = true;
        JOptionPane.showMessageDialog(MY_INFO_PANEL, "One or more fields left blank.");
      }
     
      if (!blank) {

        // Contestant
        if (MY_CONTESTANT.isSelected() && !MY_JUDGE.isSelected()
            && !MY_ORGANIZER.isSelected()) {
          ArrayList<Contestant> contestantList = Lists.getContestantList();
          Contestant selected_contestant = null;//////////////////////////////////
          for (Contestant c : contestantList) {
            if (c.getUserName().equals(username)
                && c.getPassword().equals(password)) {
              c.setActive();
              current_contestant = c;
              name = c.getName();
              selected_contestant = c;////////////////////////////////////////
              System.out.println("Registration Number: " + c.getRegistrationNumber());
              isFound = true;
              break;
            }// close inner if
          }// close for loop

          if (isFound) {
            JOptionPane.showMessageDialog(null, "Welcome back, " + name +
                ". You are now signed in.");
            success = true;
            Main_GUI.Sign_in.setText("Signed in as: " + username);
            Main_GUI.Sign_in.setEnabled(false);
            Main_GUI.register.setEnabled(false);
            Main_GUI.Registration.setEnabled(false);
            Main_GUI.createEntryButton();
            Main_GUI.createEditButton(selected_contestant);
            Main_GUI.createSignOutButton(name);
           
            /*
             * Create a method that creates a button on the side called edit information
             * that also needs parameters to pass in the current location on the list and
             * edit the info and call Lists.end() to save the information. Also the button
             * needs to be disabled and set visible to false once you hit sign out.
             *
             * also might need to keep a counter for
             */
           
           
           
           
          }// close if

          else {
            JOptionPane
                .showMessageDialog(
                    MY_INFO_PANEL,
                    "Username and/or password did not"
                        + " match with any registered contestants.");
          }// close else
        }// Close contestant block

        // Judge
        else if (!MY_CONTESTANT.isSelected() && MY_JUDGE.isSelected()
            && !MY_ORGANIZER.isSelected()) {
          ArrayList<Judge> judgeList = Lists.getJudgeList();

          for (Judge j : judgeList) {
            if (j.getUserName().equals(username)
                && j.getPassword().equals(password)) {
              j.setActive();
              name = j.getName();
              isFound = true;
            }
          }
          if (isFound) {
            JOptionPane.showMessageDialog(null, "Welcome back, "
                + name + ". You are now signed in.");
            success = true;
            Main_GUI.Sign_in.setText("Signed in as: " + username);
            Main_GUI.Sign_in.setEnabled(false);
            Main_GUI.Registration.setEnabled(false);
            Main_GUI.createEntryListButton();
            Main_GUI.createSelectWinnersButton();
            Main_GUI.createSignOutButton(name);
           
          } else {
            JOptionPane
                .showMessageDialog(MY_INFO_PANEL,
                    "Username and/or password did not match with any registered judges.");
          }
        }// close judge block

        // Organizer
        else if (!MY_CONTESTANT.isSelected() && !MY_JUDGE.isSelected()
            && MY_ORGANIZER.isSelected()) {

          if (MY_USER_FIELD.getText().equals("jbowman")
              && password.equals("password")) {
            isFound = true;
          }

          if (isFound) {
            JOptionPane
                .showMessageDialog(null,
                    "Welcome back, Mrs. Bowman. You are now signed in.");
            success = true;
            Main_GUI.Sign_in.setText("Signed in as: " + username);
            Main_GUI.Sign_in.setEnabled(false);
            Main_GUI.Registration.setEnabled(false);
            Main_GUI.createContestantListButton();
            Main_GUI.createJudgeListButton();
            Main_GUI.createEntryListButton();
            Main_GUI.createSignOutButton("Mrs. Bowman");
          }

          else {
            JOptionPane.showMessageDialog(MY_INFO_PANEL,
                "Username and/or password did not"
                    + " match with the organizer.");
          }// close else

        }// close organizer block

        // only one of the checkboxes should be selected
        else {
          JOptionPane.showMessageDialog(MY_INFO_PANEL,
              "You must select only one of the valid options.");
        }
      }
      if (success) {
        resetSignIn();
        s.dispose();
        validate();
        gui.repaint();
       
      }

    }// close actionperformed

  }// close listener class

}// close SignInGUI class
TOP

Related Classes of GUI.SignInGUI$SignInListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.